﻿/// <reference path="../../../amplify-vsdoc.js" />
/// <reference path="../../../amplify.js" />
/// <reference path="../../../helpers/validationHelper.js" />
YUI.add('editar-estudiante-view', function (Y) {
    'use strict';
    Y.EditarEstudiante = Y.Base.create('EditarEstudiante', Y.View, [], {
        templateIsCharged: false,
        loadTemplate: function () {
            if (this.template == '') {
                var that = this,
                validator = null,
                request = Y.io('/ExcellentProject/scripts/views/seguridades/estudiantes/templates/asistenteAgregarEstudiante.html', {
                    on: {
                        complete: function (id, response) {
                            that.templateIsCharged = true;
                            that.template = response.responseText;
                            that.render();
                        }
                    },
                    failure: function (id, response) {
                        alert(response)
                    }
                })
            }
        },
        events: {
            '.nextstep': {
                click: 'guardarEstudiante'
            }
        },

        render: function () {
            this.loadTemplate();
            if (this.templateIsCharged) {
                var contentTemplate = Y.Handlebars.compile(this.template);

                this.get('container').setHTML(contentTemplate(this.get('model').getAttrs()));

            }
            $('#inputNombre').alpha();
            $('#inputApellido').alpha();
            $('#inputDireccion').alphanum();
            $('#inputTelefono').numeric({
                allowMinus: false,
                minDigits: 7,
                maxDigits: 10,
            });
        },


        guardarEstudiante: function (ev) {
            if (ev.preventDefault)
                ev.preventDefault();
            else
                ev.returnValue = false;
            var model = this.get('model');

            var requiredMessages = '';

            //validacion de campos requeridos
            if (Y.one('#inputNombre').get('value').trim() == '') {
                Y.one('#nombreGroup').removeClass('has-success')
                Y.one('#nombreGroup').toggleClass('has-error', true)
                requiredMessages = ' - Nombre requerido. Ingrese el Nombre correctamente.<br/>';

            } else {
                Y.one('#nombreGroup').removeClass('has-error')
                Y.one('#nombreGroup').toggleClass('has-success', true)
            }

            if (Y.one('#inputApellido').get('value').trim() == '') {
                Y.one('#apellidoGroup').removeClass('has-success')
                Y.one('#apellidoGroup').toggleClass('has-error', true)
                requiredMessages = ' - Apellido requerido. Ingrese el Apellido correctamente. <br/>';

            } else {
                Y.one('#apellidoGroup').removeClass('has-error')
                Y.one('#apellidoGroup').toggleClass('has-success', true)
            }

            if (Y.one('#inputUsuario').get('value').trim() == '') {
                Y.one('#usuarioGroup').removeClass('has-success')
                Y.one('#usuarioGroup').toggleClass('has-error', true)
                requiredMessages = ' - Usuario requerido. Ingrese su usuario. <br/>';

            } else {
                Y.one('#apellidoGroup').removeClass('has-error')
                Y.one('#apellidoGroup').toggleClass('has-success', true)
            }

            if (Y.one('#inputCorreo').get('value').trim() == '' || !validateEmail(Y.one('#inputCorreo').get('value'))) {
                Y.one('#correoGroup').toggleClass('has-success')
                Y.one('#correoGroup').toggleClass('has-error', true)
                requiredMessages += ' - Correo Eléctronico requerido. Ingrese el Correo Eléctronico correctamente. <br/>';

            } else {
                Y.one('#correoGroup').removeClass('has-error')
                Y.one('#correoGroup').toggleClass('has-success', true)
            }

            if (requiredMessages != '') {
                bootbox.dialog({
                    message: requiredMessages,
                    title: "Problemas de Validación",
                    show: true,
                    backdrop: true,
                    closeButton: true,
                    animate: true,

                    className: "my-modal",
                    buttons: {
                        success: {
                            label: "Ok",
                            className: "btn btn-info",

                            callback: function () { }
                        }
                    }
                });
                return;
            }

            model.setAttrs({
                Id: Y.one('#id').get('value').trim(),
                Nombre: Y.one('#inputNombre').get('value').trim(),
                Apellido: Y.one('#inputApellido').get('value').trim(),
                Direccion: Y.one('#inputDireccion').get('value').trim(),
                Telefono: Y.one('#inputTelefono').get('value').trim(),
                Correo: Y.one('#inputCorreo').get('value').trim(),
                Representante: Y.one('#representante').get('value'),
                Usuario: Y.one('#inputUsuario').get('value')
            });            

            var stringifiedModel = Y.JSON.stringify(model);

            amplify.store('studentModel', stringifiedModel)


            Y.one('#navigationButton').set('href', '/estudiantes/representante/' + model.get('Id'))
            Y.one('#navigationButton').simulate("click");
        }
    })

}, '0.0.0.1', { requires: ['view', 'handlebars', 'node', 'event', 'node-event-simulate', 'json-stringify', 'json-parse'] })